package com.social.dao;

import com.social.entity.Log;
import com.social.utils.JDBCUtils;

import java.sql.*;

public class LogDao {

    String sql = null;

    Connection conn = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;

//    =======================================================================================================================
//    =====================================================插入日志信息=====================================================
//    =========================================================@lwz=========================================================
        public int insertLog(Log log) {
//            因为在数据库的图片地址我最多设了3个所以长度为3
            String[] path = new String[3];

//            接收数据库的存储的图片地址数组
            path = log.getImgAdreess();

//            设置count，检测这个图片地址数组到底存了几个信息
            int count = 0;
            for (String element : path) {
                if (element != null) {
                    count++;
                }
            }
//            加5是因为最少也要插入5个信息，日志id不用插入，我在数据库给它设置了自增
            int loopNum = count + 5;

//            System.out.println("插入数据个数为"+loopNum);

            if (loopNum == 6) {
//                6个问号
                 sql = "INSERT INTO log (user_id,scope,content,create_time,like_num,img_address_1) VALUES (?,?,?,?,?,?)";
            } else if (loopNum == 7) {
//                7个问号
                 sql = "INSERT INTO log (user_id,scope,content,create_time,like_num,img_address_1,img_address_2) VALUES (?,?,?,?,?,?,?)";

            } else if (loopNum == 8) {
//                8个问号
                 sql = "INSERT INTO log (user_id,scope,content,create_time,like_num,img_address_1,img_address_2,img_address_3) VALUES (?,?,?,?,?,?,?,?)";

            } else {
//                5个问号
                 sql = "INSERT INTO log (user_id,scope,content,create_time,like_num) VALUES (?,?,?,?,?)";

            }





            try{
                  conn = JDBCUtils.getConnection();
                 pstmt = conn.prepareStatement(sql);

                pstmt.setString(1, log.getUserId());
                pstmt.setString(2, log.getScope());
                pstmt.setString(3, log.getContent());
//                pstmt.setDate(4, (Date) log.getCreateTime());

//                这里好像必须得把这个date类型的数据转换一下，不然插不进去
                pstmt.setTimestamp(4, new Timestamp(log.getCreateTime().getTime()));
                pstmt.setInt(5, log.getLikeNum());
                if(loopNum == 6){
//                    System.out.println("难道说是图片地址的问题");
                    pstmt.setString(6,path[0]);
                }else if(loopNum == 7){
                    pstmt.setString(6,path[0]);
                    pstmt.setString(7,path[1]);
                }else if(loopNum == 8){
                    pstmt.setString(6,path[0]);
                    pstmt.setString(7,path[1]);
                    pstmt.setString(8,path[2]);
                }
                pstmt.executeUpdate();
                System.out.println("插入成功");

                return 1;

            } catch (SQLException e) {
                System.out.println("插入失败");
                e.printStackTrace();
               return 0;
            } finally {
                JDBCUtils.close(conn, pstmt,rs);

            }

        }

    //    =======================================================================================================================
//    =====================================================删除日志信息=====================================================
//    =========================================================@lwz=========================================================

//    是根据日志id进行删除的
    public int deleteLog(int id){
        String sql = "DELETE FROM log WHERE id = ?";
        try {
            conn = JDBCUtils.getConnection();
            pstmt = conn.prepareStatement(sql);
            pstmt.setInt(1,id);
            pstmt.executeUpdate();
            return 1;
        }catch (SQLException e) {
            System.out.println("删除失败");
            e.printStackTrace();
            return 0;
        } finally {
            JDBCUtils.close(conn, pstmt,rs);

        }

    }


}
